home *** CD-ROM | disk | FTP | other *** search
- #include <WM.h>
- #include <MyStructs.h>
- #include <Window.h>
- #include <Requester.h>
-
- extern SHORT gleft,gtop,gwidth,gheight;
- extern UBYTE GNAMEBuff[];
-
- USHORT NewReqDef()
- {
- USHORT quit=1;
- ScreenToFront(WMsc);
- back=areq->BackFill;
- sprintf(BACKBuff,"%d",back);
- Wleft=awin->LeftEdge;
- sprintf(LEFTBuff,"%d",Wleft);
- Wblock=awin->BlockPen;
- sprintf(BLOCKBuff,"%d",Wblock);
- Wdetail=awin->DetailPen;
- sprintf(DETAILBuff,"%d",Wdetail);
- Wtop=awin->TopEdge;
- sprintf(TOPBuff,"%d",Wtop);
- Wwidth=awin->Width;
- sprintf(WIDTHBuff,"%d",Wwidth);
- Wheight=awin->Height;
- sprintf(HEIGHTBuff,"%d",Wheight);
- Wminheight=areq->RelLeft; /* RelLeft */
- sprintf(MINHBuff,"%d",(SHORT)Wminheight);
- Wmaxheight=areq->RelTop; /* RelTop */
- sprintf(MAXHBuff,"%d",(SHORT)Wmaxheight);
- TITLEInfo.DispPos=0;
- strcpy(TITLEBuff,awin->Title); /* ReqName */
- Wflags=areq->PFlags;
- RFLAG1.Flags=NULL;
- RFLAG2.Flags=NULL;
- if(Wflags & POINTREL) RFLAG1.Flags=SELECTED;
- if(Wflags & NOISYREQ) RFLAG2.Flags=SELECTED;
- REQWindow.Screen=WMsc;
- if(!(Wwin=(struct Window *)OpenWindow(&REQWindow))) return(1);
- Wrp=Wwin->RPort;
- WinBorder(Wwin);
-
- do
- {
- GetMessage(Wwin);
- if(class==GADGETUP)
- {
- switch(Id)
- {
- /* SORRY */
- case 0: quit=0;
- break;
- /* OK */
- case 1: strcpy(awin->Title,TITLEBuff);
- awin->LeftEdge=Wleft;
- awin->TopEdge=Wtop;
- awin->Width=awin->win->Width;
- awin->Height=awin->win->Height;
- areq->RelTop=Wmaxheight;
- areq->RelLeft=Wminheight;
- awin->BlockPen=Wblock;
- awin->DetailPen=Wdetail;
- areq->BackFill=back;
- areq->PFlags=Wflags;
- Mwidth=Wwidth;
- Mheight=Wheight;
- quit=2;
- break;
- /* CLOSE */
- case 2: if(Error(32,0,0)==0) break;
- DelWin();
- quit=0;
- break;
- /* ReqName */
- case 3: break;
- /* BackFill */
- case 4: back=BACKInfo.LongInt;
- break;
- /* RelLeft */
- case 5: Wminheight=MINWInfo.LongInt;
- break;
- /* RelTop */
- case 6: Wmaxheight=MINHInfo.LongInt;
- break;
- /* LeftEdge */
- case 7: Wleft=LEFTInfo.LongInt;
- break;
- /* TopEdge */
- case 8: Wtop=TOPInfo.LongInt;
- break;
- /* Width */
- case 9: Wwidth=WIDTHInfo.LongInt;
- break;
- /* Height */
- case 10: Wheight=HEIGHTInfo.LongInt;
- break;
- case 11: Wflags ^= POINTREL;
- break;
- case 12: Wflags ^= NOISYREQ;
- break;
- /* DetailPen */
- case 13: Wdetail=DETAILInfo.LongInt;
- break;
- /* BlockPen */
- case 14: Wblock=BLOCKInfo.LongInt;
- break;
- } /* switch Id */
- } /* if class */
- } while(quit==1); /* do */
- CloseWindow(Wwin);
- Work();
- if(quit)
- {
- SaveOk=1;
- SetNewWin(2);
- }
- Ready();
- ScreenToFront(sc);
- return(0);
- }
-
- USHORT DefAlert()
- {
- USHORT quit=1;
- ScreenToFront(WMsc);
- Wflags=areq->PFlags;
- Wheight=awin->Height;
- sprintf(HEIGHTBuff,"%d",Wheight);
- strcpy(TITLEBuff,awin->Title);
- AlertWindow.Screen=WMsc;
- if(!(Wwin=(struct Window *)OpenWindow(&AlertWindow))) return(1);
- Wrp=Wwin->RPort;
- WinBorder(Wwin);
- SetAlert();
- do
- {
- GetMessage(Wwin);
- if(class==GADGETUP)
- {
- switch(Id)
- {
- /* SORRY */
- case 0: quit=0;
- break;
- /* OK */
- case 1: strcpy(awin->Title,TITLEBuff);
- awin->Height=awin->win->Height;
- areq->PFlags=Wflags;
- Mwidth=640;
- Mheight=Wheight;
- quit=2;
- break;
- /* CLOSE */
- case 2: if(Error(34,0,0)==0) break;
- DelWin();
- quit=0;
- break;
- /* AlertName */
- case 3: break;
- /* Height */
- case 4: Wheight=HEIGHTInfo.LongInt;
- break;
- } /* switch Id */
- } /* if class */
- if(class==GADGETDOWN)
- {
- switch(Id)
- {
- case 5: Wflags = 0;
- SetAlert();
- break;
- case 6: Wflags = 1;
- SetAlert();
- break;
- }
- }
- } while(quit==1); /* do */
- CloseWindow(Wwin);
- Work();
- if(quit)
- {
- SaveOk=1;
- SetNewWin(2);
- }
- Ready();
- ScreenToFront(sc);
- return(0);
- }
-
- VOID SetAlert()
- {
- y=16;
- if(Wflags & 1) y=28;
- Box(16,36,y,16,128,&AFLAG2);
- }
-
- VOID DelWin()
- {
- if(awin->Parent)
- {
- awin->Parent->NextWindow=awin->NextWindow;
- if(awin->NextWindow)
- {
- helpW=awin->NextWindow;
- awin->NextWindow->Parent=awin->Parent;
- }
- else
- {
- helpW=awin->Parent;
- lastW=helpW;
- }
- }
- else
- {
- if(awin->NextWindow)
- {
- if(awin==noscW)
- noscW=awin->NextWindow;
- firstW=awin->NextWindow;
- firstW->Parent=NULL;
- helpW=firstW;
- if(asc) asc->FirstWindow=firstW;
- }
- else
- {
- lastW=NULL;
- helpW=NULL;
- firstW=NULL;
- if(awin==noscW) noscW=NULL;
- else asc->FirstWindow=NULL;
- MenuOff();
- }
- }
- CloseWin(awin);
- awin=helpW;
- if(awin) SetNewWin(0);
- }
-
- USHORT NegGad()
- {
- gleft=-91;
- if(NegBor("Cancel")) return(1);
- agad->Flags |= GRELRIGHT;
- gleft=18;
- if(NegBor("Retry")) return(1);
- helpG=firstG;
- MakeGadget();
- helpG=lastG;
- MakeGadget();
- return(0);
- }
-
- USHORT NegBor(UBYTE *s)
- {
- gtop=-20;
- gwidth=(strlen(s)*8)+12;
- gheight=14;
- if(NewGad()) return(1);
- agad->Flags |= GRELBOTTOM;
- agad->Activation |= TOGGLESELECT;
- agad->PFlags=1;
- if(NewBorder()) return(1);
- abor->Count=9;
- abor->Vectors[14]=abor->Width-1;
- abor->Vectors[16]=abor->Width-1;
- abor->Vectors[12]=1;
- abor->Vectors[10]=1;
- abor->Vectors[13]=15;
- abor->Vectors[15]=15;
- if(NewBorder()) return(1);
- abor->LeftEdge=1;
- abor->TopEdge=1;
- abor->Width-=4;
- abor->Height-=4;
- abor->FrontPen=0;
- abor->Count=9;
- abor->Vectors[2]=abor->Width;
- abor->Vectors[4]=abor->Width;
- abor->Vectors[14]=abor->Width-1;
- abor->Vectors[16]=abor->Width-1;
- abor->Vectors[12]=1;
- abor->Vectors[10]=1;
- abor->Vectors[13]=11;
- abor->Vectors[15]=11;
- abor->Vectors[5]=11;
- abor->Vectors[7]=11;
- left=6;
- top=3;
- dm=JAM1;
- front=0;
- back=1;
- f1=0;
- strcpy(TITLEBuff,s);
- style=0;
- firstT=NULL;
- lastT=NULL;
- if(NewText()) return(1);
- SetT(1);
- return(0);
- }
-
- USHORT DefAutoReq()
- {
- USHORT quit=1;
- ScreenToFront(WMsc);
- Wwidth=awin->Width;
- sprintf(WIDTHBuff,"%d",Wwidth);
- Wheight=awin->Height;
- sprintf(HEIGHTBuff,"%d",Wheight);
- GNAMEInfo.DispPos=0;
- strcpy(GNAMEBuff,awin->FirstGadget->Name); /* ReqName */
- Wflags=areq->PFlags;
- Widcmp=areq->NFlags;
- for(i=0; i<9; i++)
- {
- NFLAGS[i].Flags=NULL;
- PFLAGS[i].Flags=NULL;
- if(Wflags & WIDCMP[PFLAGS[i].GadgetID-10])
- PFLAGS[i].Flags=SELECTED;
- if(Widcmp & WIDCMP[NFLAGS[i].GadgetID-40])
- NFLAGS[i].Flags=SELECTED;
- }
- AREQWindow.Screen=WMsc;
- if(!(Wwin=(struct Window *)OpenWindow(&AREQWindow))) return(1);
- Wrp=Wwin->RPort;
- WinBorder(Wwin);
-
- do
- {
- GetMessage(Wwin);
- if(class==GADGETUP)
- {
- switch(Id)
- {
- /* SORRY */
- case 0: quit=0;
- break;
- /* OK */
- case 1: strcpy(awin->FirstGadget->Name,GNAMEBuff);
- awin->Width=awin->win->Width;
- awin->Height=awin->win->Height;
- areq->PFlags=Wflags;
- areq->NFlags=Widcmp;
- Mwidth=Wwidth;
- Mheight=Wheight;
- quit=2;
- break;
- /* CLOSE */
- case 2: if(Error(33,0,0)==0) break;
- DelWin();
- quit=0;
- break;
- /* ReqName */
- case 3: break;
- /* Width */
- case 4: Wwidth=WIDTHInfo.LongInt;
- break;
- /* Height */
- case 5: Wheight=HEIGHTInfo.LongInt;
- break;
- } /* switch Id */
- } /* if class */
- if(class==GADGETDOWN)
- {
- if(Id > 9 && Id < 40)
- Wflags ^= WIDCMP[Id-10];
- if(Id > 39 && Id < 70)
- Widcmp ^= WIDCMP[Id-40];
- }
- } while(quit==1); /* do */
- CloseWindow(Wwin);
- Work();
- if(quit)
- {
- SaveOk=1;
- SetNewWin(2);
- }
- Ready();
- ScreenToFront(sc);
- return(0);
- }
-
-